#include <bits/stdc++.h>
using namespace std;
const int maxn=5e5+10;
int n;
int tree[maxn],b[maxn];
long long ans;

struct node
{
	int val;
	int id;
};
node a[maxn];

bool compare(node a,node b)
{
	if(a.val==b.val)
	{
		return a.id<b.id;
	}
	return a.val<b.val;
}
 
int lowbit(int x)
{
	return x&(-x);
}

void update(int x,int k)
{
	for(int i=x;i<=n;i=i+lowbit(i))
	{
		tree[i]=tree[i]+k;
	}
}

int ask(int x)
{
	int sum=0;
	for(int i=x;i>0;i=i-lowbit(i))
	{
		sum=sum+tree[i];
	}
	return sum;
}


int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i].val;
		a[i].id=i;
	}
	sort(a+1,a+1+n,compare);
	for(int i=1;i<=n;i++)
	{
		b[a[i].id]=i;
	}
	for(int i=1;i<=n;i++)
	{
		update(b[i],1);
		ans=ans+i-ask(b[i]);
	}
	cout << ans << endl;
	return 0;
}
